library(tidyverse)
chart_melt <- read_csv("chart_melt.csv")
Parsed with column specification:
cols(
  YEAR = col_double(),
  variable = col_character(),
  weather_index = col_double(),
  weather_value = col_double(),
  metric = col_character()
)
library(htmlwidgets)
library(plotly)

plot1 <- ggplot(chart_melt, aes(x=YEAR, y=weather_index, colour=variable)) +
          geom_point(aes(text=paste(metric,":", weather_value))) +
          geom_line() +
          facet_grid(~variable) +
          xlab("Year") + ylab("Weather Index") + ggtitle("Australia Weather Metrics 2010-2019") + 
          theme_minimal() +
          theme(legend.position = "none",
                plot.title = element_text(face = "bold", size = 20, hjust = 0.5), 
                axis.text.x = element_text(angle = 60, size = 8, hjust = 10),
                axis.title.x = element_text(vjust = 0.5)) +
          scale_x_continuous(breaks = c(2010, 2012, 2014, 2016, 2018))
Ignoring unknown aesthetics: text
ggplotly(plot1, tooltip = "text")
dt <- read_csv("dt.csv")
Parsed with column specification:
cols(
  WEEK = col_date(format = ""),
  avg_temp = col_double(),
  sum_precip = col_double(),
  avg_humidity = col_double(),
  max_wind = col_double()
)
library(DT)

FireSeason19_20 <- dt %>% datatable(rownames = FALSE, 
                                    colnames = c("Week", "Average Temperature (C)", "Total Precipitation (mm)", 
                                           "Average Humidity", "Max Wind (m/s)"),
                                    filter = c("top"), options = list(language = list(sSearch = "Filter:"))) %>%
                          formatRound(c('avg_temp', 'sum_precip', 'avg_humidity', 'max_wind'), 0)

FireSeason19_20 <- FireSeason19_20 %>% formatStyle('avg_temp',
                                                    background = styleColorBar(dt$avg_temp, 'tomato'),
                                                    backgroundPosition = 'right') %>%
                                       formatStyle('sum_precip',
                                                    background = styleColorBar(dt$sum_precip, 'lightblue'),
                                                    backgroundPosition = 'right') %>%
                                       formatStyle('avg_humidity',
                                                    background = styleColorBar(dt$avg_humidity, 'navajowhite'),
                                                    backgroundPosition = 'right') %>%
                                       formatStyle('max_wind',
                                                    background = styleColorBar(dt$max_wind, 'lightgrey'),
                                                    backgroundPosition = 'right')
FireSeason19_20

NA
combined <- read_csv("combined.csv")
Parsed with column specification:
cols(
  POSTAL_CODE = col_character(),
  lat = col_double(),
  lon = col_double(),
  temp_change = col_character(),
  precip_change = col_character(),
  humidity_change = col_character(),
  wind_change = col_character()
)
Warning messages:
1: In get(results[[i]], packages[[i]]) :
  restarting interrupted promise evaluation
2: In get(results[[i]], packages[[i]]) :
  internal error -3 in R_decompress1
#changing the buckets for each group
combined$temp_change[combined$temp_change > 25] <- "+25% to +50%"
combined$temp_change[combined$temp_change > 10 & combined$temp_change <= 25] <- "+10% to +25%"
combined$temp_change[combined$temp_change > 0  & combined$temp_change <= 10] <- "flat to +10%"
combined$temp_change[combined$temp_change == -1] <- "flat to -10%"
combined$temp_change[combined$temp_change == -3] <- "flat to -10%"
combined$temp_change[combined$temp_change == 9] <- "flat to +10%"
combined$temp_change[combined$temp_change == 8] <- "flat to +10%"
combined$temp_change[combined$temp_change == 7] <- "flat to +10%"
combined$temp_change[combined$temp_change == 6] <- "flat to +10%"
combined$temp_change[combined$temp_change == 5] <- "flat to +10%"
combined$temp_change[combined$temp_change == 4] <- "flat to +10%"
combined$temp_change[combined$temp_change == 3] <- "flat to +10%"

combined$precip_change[combined$precip_change < -50] <- "> -50% Change"

combined$humidity_change <- combined$humidity_change %>%
                        replace(combined$humidity_change >= 0 & combined$humidity_change <= 10, "flat to +10%") %>%
                        replace(combined$humidity_change < 0 & combined$humidity_change >= -10, "flat to -10%") %>%
                        replace(combined$humidity_change < -10 & combined$humidity_change >= -25, "-10% to -25%") %>%
                        replace(combined$humidity_change < -25, "-25% to -50%")

combined$wind_change <- combined$wind_change %>%
                        replace(combined$wind_change >= 0 & combined$wind_change <= 10, "flat to +10%") %>%
                        replace(combined$wind_change < 0, "flat to -10%") %>%
                        replace(combined$wind_change > 10, "+10% to +25%")

#adding colors
library(RColorBrewer)
pal1 = colorFactor("Reds", reverse = TRUE, domain = combined$temp_change)
color_temp = pal1(combined$temp_change)
pal2 = colorFactor("Blue", reverse = TRUE, domain = combined$precip_change)
color_precip = pal2(combined$precip_change)
pal3 = colorFactor("YlOrBr", reverse = TRUE, domain = combined$humidity_change)
color_humidity = pal3(combined$humidity_change)
pal4 = colorFactor("Greys", reverse = TRUE, domain = combined$wind_change)
color_wind = pal4(combined$wind_change)
library(leaflet)

map1 <- combined %>% leaflet() %>% 
                     addTiles('http://{s}.basemaps.cartocdn.com/light_all/{z}/{x}/{y}.png') %>% 
                     addCircles(color = color_temp, group = "Temperature") %>%
                     addCircles(color = color_precip, group = "Precipitation") %>%
                     addCircles(color = color_humidity, group = "Humidity") %>%
                     addCircles(color = color_wind, group = "Wind") %>%
                     setView(lng = 135, lat = -28, zoom = 4.1) %>%
                     addLayersControl(overlayGroups = c("Temperature", "Precipitation", "Humidity", 
                                                        "Wind")) %>%
                     clearBounds() %>%
                     addLegend(pal = pal1, values = combined$temp_change, title = "Temperature % Change", 
                               group = "Temperature") %>%
                     addLegend(pal = pal2, values = combined$precip_change, title = "Precipitation % Change", 
                               group = "Precipitation") %>%
                     addLegend(pal = pal3, values = combined$humidity_change, title = "Humidty % Change", 
                               group = "Humidity") %>%
                     addLegend(pal = pal4, values = combined$wind_change, title = "Wind % Change", 
                               group = "Wind")
Assuming "lon" and "lat" are longitude and latitude, respectively
Assuming "lon" and "lat" are longitude and latitude, respectively
Assuming "lon" and "lat" are longitude and latitude, respectively
Assuming "lon" and "lat" are longitude and latitude, respectively
map1

NA
LS0tCnRpdGxlOiAiV2VhdGhlciBWaXN1YWxpemF0aW9ucyIKb3V0cHV0OiBodG1sX25vdGVib29rCi0tLQpgYGB7Un0KbGlicmFyeSh0aWR5dmVyc2UpCmNoYXJ0X21lbHQgPC0gcmVhZF9jc3YoImNoYXJ0X21lbHQuY3N2IikKCgpsaWJyYXJ5KGh0bWx3aWRnZXRzKQpsaWJyYXJ5KHBsb3RseSkKCnBsb3QxIDwtIGdncGxvdChjaGFydF9tZWx0LCBhZXMoeD1ZRUFSLCB5PXdlYXRoZXJfaW5kZXgsIGNvbG91cj12YXJpYWJsZSkpICsKICAgICAgICAgIGdlb21fcG9pbnQoYWVzKHRleHQ9cGFzdGUobWV0cmljLCI6Iiwgd2VhdGhlcl92YWx1ZSkpKSArCiAgICAgICAgICBnZW9tX2xpbmUoKSArCiAgICAgICAgICBmYWNldF9ncmlkKH52YXJpYWJsZSkgKwogICAgICAgICAgeGxhYigiWWVhciIpICsgeWxhYigiV2VhdGhlciBJbmRleCIpICsgZ2d0aXRsZSgiQXVzdHJhbGlhIFdlYXRoZXIgTWV0cmljcyAyMDEwLTIwMTkiKSArIAogICAgICAgICAgdGhlbWVfbWluaW1hbCgpICsKICAgICAgICAgIHRoZW1lKGxlZ2VuZC5wb3NpdGlvbiA9ICJub25lIiwKICAgICAgICAgICAgICAgIHBsb3QudGl0bGUgPSBlbGVtZW50X3RleHQoZmFjZSA9ICJib2xkIiwgc2l6ZSA9IDIwLCBoanVzdCA9IDAuNSksIAogICAgICAgICAgICAgICAgYXhpcy50ZXh0LnggPSBlbGVtZW50X3RleHQoYW5nbGUgPSA2MCwgc2l6ZSA9IDgsIGhqdXN0ID0gMTApLAogICAgICAgICAgICAgICAgYXhpcy50aXRsZS54ID0gZWxlbWVudF90ZXh0KHZqdXN0ID0gMC41KSkgKwogICAgICAgICAgc2NhbGVfeF9jb250aW51b3VzKGJyZWFrcyA9IGMoMjAxMCwgMjAxMiwgMjAxNCwgMjAxNiwgMjAxOCkpCgpnZ3Bsb3RseShwbG90MSwgdG9vbHRpcCA9ICJ0ZXh0IikKYGBgCgpgYGB7Un0KZHQgPC0gcmVhZF9jc3YoImR0LmNzdiIpCgoKbGlicmFyeShEVCkKCkZpcmVTZWFzb24xOV8yMCA8LSBkdCAlPiUgZGF0YXRhYmxlKHJvd25hbWVzID0gRkFMU0UsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2xuYW1lcyA9IGMoIldlZWsiLCAiQXZlcmFnZSBUZW1wZXJhdHVyZSAoQykiLCAiVG90YWwgUHJlY2lwaXRhdGlvbiAobW0pIiwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiQXZlcmFnZSBIdW1pZGl0eSIsICJNYXggV2luZCAobS9zKSIpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWx0ZXIgPSBjKCJ0b3AiKSwgb3B0aW9ucyA9IGxpc3QobGFuZ3VhZ2UgPSBsaXN0KHNTZWFyY2ggPSAiRmlsdGVyOiIpKSkgJT4lCiAgICAgICAgICAgICAgICAgICAgICAgICAgZm9ybWF0Um91bmQoYygnYXZnX3RlbXAnLCAnc3VtX3ByZWNpcCcsICdhdmdfaHVtaWRpdHknLCAnbWF4X3dpbmQnKSwgMCkKCkZpcmVTZWFzb24xOV8yMCA8LSBGaXJlU2Vhc29uMTlfMjAgJT4lIGZvcm1hdFN0eWxlKCdhdmdfdGVtcCcsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kID0gc3R5bGVDb2xvckJhcihkdCRhdmdfdGVtcCwgJ3RvbWF0bycpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZFBvc2l0aW9uID0gJ3JpZ2h0JykgJT4lCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvcm1hdFN0eWxlKCdzdW1fcHJlY2lwJywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQgPSBzdHlsZUNvbG9yQmFyKGR0JHN1bV9wcmVjaXAsICdsaWdodGJsdWUnKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmRQb3NpdGlvbiA9ICdyaWdodCcpICU+JQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3JtYXRTdHlsZSgnYXZnX2h1bWlkaXR5JywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQgPSBzdHlsZUNvbG9yQmFyKGR0JGF2Z19odW1pZGl0eSwgJ25hdmFqb3doaXRlJyksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kUG9zaXRpb24gPSAncmlnaHQnKSAlPiUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9ybWF0U3R5bGUoJ21heF93aW5kJywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQgPSBzdHlsZUNvbG9yQmFyKGR0JG1heF93aW5kLCAnbGlnaHRncmV5JyksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kUG9zaXRpb24gPSAncmlnaHQnKQpGaXJlU2Vhc29uMTlfMjAKCmBgYAoKYGBge1J9CmNvbWJpbmVkIDwtIHJlYWRfY3N2KCJjb21iaW5lZC5jc3YiKQoKCiNjaGFuZ2luZyB0aGUgYnVja2V0cyBmb3IgZWFjaCBncm91cApjb21iaW5lZCR0ZW1wX2NoYW5nZVtjb21iaW5lZCR0ZW1wX2NoYW5nZSA+IDI1XSA8LSAiKzI1JSB0byArNTAlIgpjb21iaW5lZCR0ZW1wX2NoYW5nZVtjb21iaW5lZCR0ZW1wX2NoYW5nZSA+IDEwICYgY29tYmluZWQkdGVtcF9jaGFuZ2UgPD0gMjVdIDwtICIrMTAlIHRvICsyNSUiCmNvbWJpbmVkJHRlbXBfY2hhbmdlW2NvbWJpbmVkJHRlbXBfY2hhbmdlID4gMCAgJiBjb21iaW5lZCR0ZW1wX2NoYW5nZSA8PSAxMF0gPC0gImZsYXQgdG8gKzEwJSIKY29tYmluZWQkdGVtcF9jaGFuZ2VbY29tYmluZWQkdGVtcF9jaGFuZ2UgPT0gLTFdIDwtICJmbGF0IHRvIC0xMCUiCmNvbWJpbmVkJHRlbXBfY2hhbmdlW2NvbWJpbmVkJHRlbXBfY2hhbmdlID09IC0zXSA8LSAiZmxhdCB0byAtMTAlIgpjb21iaW5lZCR0ZW1wX2NoYW5nZVtjb21iaW5lZCR0ZW1wX2NoYW5nZSA9PSA5XSA8LSAiZmxhdCB0byArMTAlIgpjb21iaW5lZCR0ZW1wX2NoYW5nZVtjb21iaW5lZCR0ZW1wX2NoYW5nZSA9PSA4XSA8LSAiZmxhdCB0byArMTAlIgpjb21iaW5lZCR0ZW1wX2NoYW5nZVtjb21iaW5lZCR0ZW1wX2NoYW5nZSA9PSA3XSA8LSAiZmxhdCB0byArMTAlIgpjb21iaW5lZCR0ZW1wX2NoYW5nZVtjb21iaW5lZCR0ZW1wX2NoYW5nZSA9PSA2XSA8LSAiZmxhdCB0byArMTAlIgpjb21iaW5lZCR0ZW1wX2NoYW5nZVtjb21iaW5lZCR0ZW1wX2NoYW5nZSA9PSA1XSA8LSAiZmxhdCB0byArMTAlIgpjb21iaW5lZCR0ZW1wX2NoYW5nZVtjb21iaW5lZCR0ZW1wX2NoYW5nZSA9PSA0XSA8LSAiZmxhdCB0byArMTAlIgpjb21iaW5lZCR0ZW1wX2NoYW5nZVtjb21iaW5lZCR0ZW1wX2NoYW5nZSA9PSAzXSA8LSAiZmxhdCB0byArMTAlIgoKY29tYmluZWQkcHJlY2lwX2NoYW5nZVtjb21iaW5lZCRwcmVjaXBfY2hhbmdlIDwgLTUwXSA8LSAiPiAtNTAlIENoYW5nZSIKCmNvbWJpbmVkJGh1bWlkaXR5X2NoYW5nZSA8LSBjb21iaW5lZCRodW1pZGl0eV9jaGFuZ2UgJT4lCiAgICAgICAgICAgICAgICAgICAgICAgIHJlcGxhY2UoY29tYmluZWQkaHVtaWRpdHlfY2hhbmdlID49IDAgJiBjb21iaW5lZCRodW1pZGl0eV9jaGFuZ2UgPD0gMTAsICJmbGF0IHRvICsxMCUiKSAlPiUKICAgICAgICAgICAgICAgICAgICAgICAgcmVwbGFjZShjb21iaW5lZCRodW1pZGl0eV9jaGFuZ2UgPCAwICYgY29tYmluZWQkaHVtaWRpdHlfY2hhbmdlID49IC0xMCwgImZsYXQgdG8gLTEwJSIpICU+JQogICAgICAgICAgICAgICAgICAgICAgICByZXBsYWNlKGNvbWJpbmVkJGh1bWlkaXR5X2NoYW5nZSA8IC0xMCAmIGNvbWJpbmVkJGh1bWlkaXR5X2NoYW5nZSA+PSAtMjUsICItMTAlIHRvIC0yNSUiKSAlPiUKICAgICAgICAgICAgICAgICAgICAgICAgcmVwbGFjZShjb21iaW5lZCRodW1pZGl0eV9jaGFuZ2UgPCAtMjUsICItMjUlIHRvIC01MCUiKQoKY29tYmluZWQkd2luZF9jaGFuZ2UgPC0gY29tYmluZWQkd2luZF9jaGFuZ2UgJT4lCiAgICAgICAgICAgICAgICAgICAgICAgIHJlcGxhY2UoY29tYmluZWQkd2luZF9jaGFuZ2UgPj0gMCAmIGNvbWJpbmVkJHdpbmRfY2hhbmdlIDw9IDEwLCAiZmxhdCB0byArMTAlIikgJT4lCiAgICAgICAgICAgICAgICAgICAgICAgIHJlcGxhY2UoY29tYmluZWQkd2luZF9jaGFuZ2UgPCAwLCAiZmxhdCB0byAtMTAlIikgJT4lCiAgICAgICAgICAgICAgICAgICAgICAgIHJlcGxhY2UoY29tYmluZWQkd2luZF9jaGFuZ2UgPiAxMCwgIisxMCUgdG8gKzI1JSIpCgojYWRkaW5nIGNvbG9ycwpsaWJyYXJ5KFJDb2xvckJyZXdlcikKcGFsMSA9IGNvbG9yRmFjdG9yKCJSZWRzIiwgcmV2ZXJzZSA9IFRSVUUsIGRvbWFpbiA9IGNvbWJpbmVkJHRlbXBfY2hhbmdlKQpjb2xvcl90ZW1wID0gcGFsMShjb21iaW5lZCR0ZW1wX2NoYW5nZSkKcGFsMiA9IGNvbG9yRmFjdG9yKCJCbHVlIiwgcmV2ZXJzZSA9IFRSVUUsIGRvbWFpbiA9IGNvbWJpbmVkJHByZWNpcF9jaGFuZ2UpCmNvbG9yX3ByZWNpcCA9IHBhbDIoY29tYmluZWQkcHJlY2lwX2NoYW5nZSkKcGFsMyA9IGNvbG9yRmFjdG9yKCJZbE9yQnIiLCByZXZlcnNlID0gVFJVRSwgZG9tYWluID0gY29tYmluZWQkaHVtaWRpdHlfY2hhbmdlKQpjb2xvcl9odW1pZGl0eSA9IHBhbDMoY29tYmluZWQkaHVtaWRpdHlfY2hhbmdlKQpwYWw0ID0gY29sb3JGYWN0b3IoIkdyZXlzIiwgcmV2ZXJzZSA9IFRSVUUsIGRvbWFpbiA9IGNvbWJpbmVkJHdpbmRfY2hhbmdlKQpjb2xvcl93aW5kID0gcGFsNChjb21iaW5lZCR3aW5kX2NoYW5nZSkKYGBgCgoKYGBge1J9CmxpYnJhcnkobGVhZmxldCkKCm1hcDEgPC0gY29tYmluZWQgJT4lIGxlYWZsZXQoKSAlPiUgCiAgICAgICAgICAgICAgICAgICAgIGFkZFRpbGVzKCdodHRwOi8ve3N9LmJhc2VtYXBzLmNhcnRvY2RuLmNvbS9saWdodF9hbGwve3p9L3t4fS97eX0ucG5nJykgJT4lIAogICAgICAgICAgICAgICAgICAgICBhZGRDaXJjbGVzKGNvbG9yID0gY29sb3JfdGVtcCwgZ3JvdXAgPSAiVGVtcGVyYXR1cmUiKSAlPiUKICAgICAgICAgICAgICAgICAgICAgYWRkQ2lyY2xlcyhjb2xvciA9IGNvbG9yX3ByZWNpcCwgZ3JvdXAgPSAiUHJlY2lwaXRhdGlvbiIpICU+JQogICAgICAgICAgICAgICAgICAgICBhZGRDaXJjbGVzKGNvbG9yID0gY29sb3JfaHVtaWRpdHksIGdyb3VwID0gIkh1bWlkaXR5IikgJT4lCiAgICAgICAgICAgICAgICAgICAgIGFkZENpcmNsZXMoY29sb3IgPSBjb2xvcl93aW5kLCBncm91cCA9ICJXaW5kIikgJT4lCiAgICAgICAgICAgICAgICAgICAgIHNldFZpZXcobG5nID0gMTM1LCBsYXQgPSAtMjgsIHpvb20gPSA0LjEpICU+JQogICAgICAgICAgICAgICAgICAgICBhZGRMYXllcnNDb250cm9sKG92ZXJsYXlHcm91cHMgPSBjKCJUZW1wZXJhdHVyZSIsICJQcmVjaXBpdGF0aW9uIiwgIkh1bWlkaXR5IiwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIldpbmQiKSkgJT4lCiAgICAgICAgICAgICAgICAgICAgIGNsZWFyQm91bmRzKCkgJT4lCiAgICAgICAgICAgICAgICAgICAgIGFkZExlZ2VuZChwYWwgPSBwYWwxLCB2YWx1ZXMgPSBjb21iaW5lZCR0ZW1wX2NoYW5nZSwgdGl0bGUgPSAiVGVtcGVyYXR1cmUgJSBDaGFuZ2UiLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdyb3VwID0gIlRlbXBlcmF0dXJlIikgJT4lCiAgICAgICAgICAgICAgICAgICAgIGFkZExlZ2VuZChwYWwgPSBwYWwyLCB2YWx1ZXMgPSBjb21iaW5lZCRwcmVjaXBfY2hhbmdlLCB0aXRsZSA9ICJQcmVjaXBpdGF0aW9uICUgQ2hhbmdlIiwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBncm91cCA9ICJQcmVjaXBpdGF0aW9uIikgJT4lCiAgICAgICAgICAgICAgICAgICAgIGFkZExlZ2VuZChwYWwgPSBwYWwzLCB2YWx1ZXMgPSBjb21iaW5lZCRodW1pZGl0eV9jaGFuZ2UsIHRpdGxlID0gIkh1bWlkdHkgJSBDaGFuZ2UiLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdyb3VwID0gIkh1bWlkaXR5IikgJT4lCiAgICAgICAgICAgICAgICAgICAgIGFkZExlZ2VuZChwYWwgPSBwYWw0LCB2YWx1ZXMgPSBjb21iaW5lZCR3aW5kX2NoYW5nZSwgdGl0bGUgPSAiV2luZCAlIENoYW5nZSIsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ3JvdXAgPSAiV2luZCIpCgptYXAxCgpgYGAKCgoK